1. Field of the Invention
Embodiments of the present invention relate generally to digital media distribution and, more specifically, to a system and method for detecting active streams using a heartbeat and secure stop mechanism.
2. Description of the Related Art
Digital content distribution systems conventionally include a content server, a content player, and a communications network connecting the content server to the content player. The content server is configured to store digital content files that can be downloaded from the content server to the content player. Each digital content file corresponds to a specific identifying title, such as “Gone with the Wind,” that a user can download for playback. The digital content file typically includes sequential content data, organized according to playback chronology, and may comprise audio data, video data, or a combination thereof.
The content player is configured to download and play a digital content file, in response to a user request selecting the title for playback. The process of playing the digital content file includes decoding and rendering audio and video data into an audio signal and a video signal, which may drive a display system having a speaker subsystem and a video subsystem. Playback typically involves a technique known in the art as “streaming,” whereby the content server sequentially transmits the digital content file to the content player, and the content player plays the digital content file while content data is received that comprises the digital content file.
Typically, in a digital content distribution system, a limit is placed on the number of concurrent streaming connections a particular user is allowed to establish. To enforce such a limit, when a user requests a new streaming connection, the number of currently established streaming connections associated with that user is observed, and if that number exceeds the maximum number of allowed concurrent streaming connections, then the request for the new streaming connection is denied.
In practice, oftentimes a previous streaming connection established by the user is terminated by the content player but the notification of the termination event is not received by the content server in a timely manner. This results in inaccurate and stale state information being stored on the content server related to the user, which may impact the user's viewing experience. For example, a user who has legitimately terminated a particular streaming connection may not be allowed to establish any new streaming connections if the content server does not know that the particular streaming connection has been terminated. Not allowing users to establish new streaming connections when those users are in compliance with the limitations placed on concurrent streaming connections can run the user experience and is, thus, highly undesirable in a content distribution system.
As the foregoing illustrates, what is needed in the art is a way to more accurately track active and terminated streaming connections.